Skip to content

release: v12.0.0 major release (approx. Q3 2026)#16391

Draft
kamilmysliwiec wants to merge 204 commits into
masterfrom
v12.0.0
Draft

release: v12.0.0 major release (approx. Q3 2026)#16391
kamilmysliwiec wants to merge 204 commits into
masterfrom
v12.0.0

Conversation

@kamilmysliwiec

@kamilmysliwiec kamilmysliwiec commented Feb 19, 2026

Copy link
Copy Markdown
Member

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Other... Please describe: v12.0.0 release

Description

Approximate release window: early Q3 2026

Overview

  1. ESM migration

  2. CLI (ESM/CJS)

    • The NestJS CLI will prompt users to choose whether to generate a CJS or ESM project (ESM projects will use vitest + oxlint by default)
    • Webpack -> Rspack ✅ (webpack is now deprecated)
  3. Testing stack changes

  4. Linter

  5. Website redesign

    • A complete redesign of the NestJS websites is coming soon - we're taking them to the next level.
  6. Minor breaking changes

    • There will be a few minor breaking changes across other NestJS packages, but nothing significant.
  7. Schema support in route decorators

    • All route decorators (e.g., @Body, @Query, etc.) will support a new schema option that accepts a Standard Schema–compatible object. https://standardschema.dev/)
    • This enables the use of modern validation libraries such as Zod, Valibot, ArkType, and others, as an alternative to class-validator.
    • The same capability will also be available in the serializer interceptor.

PRs:

Packages will soon (possibly in Q2) be released under the next tag to let everyone play with them before they make it to the official latest tag.

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

glebbash and others added 30 commits March 4, 2025 12:52
feat: standard schema validation pipe, and standard serializer, introduce internal export subpath
sample: migrate all samples to esm and vitest
refactor: migrate from mocha, chai, sinon to vitest
@julianpoemp

Copy link
Copy Markdown

is it possible to get rid of class-transformer completely with v12? I'm asking because class-transformer didn't receive any updates for the last 4 years. Even if it's so popular, issues und PRs are completely ignored for now.

@kamilmysliwiec

Copy link
Copy Markdown
Member Author

@julianpoemp #16391 (comment)

@vkouk

vkouk commented May 20, 2026

Copy link
Copy Markdown

For those who want to give v12 a shot, all packages have just been released under the next tag on NPM:

  • @nestjs/common: 12.0.0-alpha.4
  • @nestjs/core: 12.0.0-alpha.4
  • @nestjs/microservices: 12.0.0-alpha.4
  • @nestjs/platform-express: 12.0.0-alpha.4
  • @nestjs/platform-fastify: 12.0.0-alpha.4
  • @nestjs/platform-socket.io: 12.0.0-alpha.4
  • @nestjs/platform-ws: 12.0.0-alpha.4
  • @nestjs/testing: 12.0.0-alpha.4
  • @nestjs/websockets: 12.0.0-alpha.4
$ npm i {package_name}@next

if you want to start from scratch, you can also just use npx @nestjs/cli@next new (might need a local @nestjs/schematics@next version installed if you already have a globally installed binary - otherwise it may pick up the old version)

Hey thanks for the early versions. Could we also get config / swagger as well?

@kamilmysliwiec

Copy link
Copy Markdown
Member Author

@vkouk almost there

# Conflicts:
#	integration/injector/e2e/injector.spec.ts
#	integration/microservices/e2e/math-grpc.spec.ts
#	integration/scopes/e2e/request-modules-scope.spec.ts
#	integration/scopes/e2e/request-scope.spec.ts
#	lerna.json
#	package-lock.json
#	package.json
#	packages/core/injector/injector.ts
#	packages/core/test/errors/test/messages.spec.ts
#	packages/core/test/injector/injector.spec.ts
#	sample/01-cats-app/package.json
#	sample/02-gateways/package.json
#	sample/03-microservices/package.json
#	sample/04-grpc/package.json
#	sample/05-sql-typeorm/package.json
#	sample/06-mongoose/package.json
#	sample/07-sequelize/package.json
#	sample/08-webpack/package.json
#	sample/09-babel-example/package.json
#	sample/10-fastify/package.json
#	sample/11-swagger/package.json
#	sample/12-graphql-schema-first/package.json
#	sample/13-mongo-typeorm/package.json
#	sample/14-mongoose-base/package.json
#	sample/15-mvc/package.json
#	sample/16-gateways-ws/package.json
#	sample/17-mvc-fastify/package.json
#	sample/18-context/package.json
#	sample/19-auth-jwt/package.json
#	sample/20-cache/package.json
#	sample/21-serializer/package.json
#	sample/22-graphql-prisma/package.json
#	sample/23-graphql-code-first/package.json
#	sample/24-serve-static/package.json
#	sample/25-dynamic-modules/package.json
#	sample/26-queues/package.json
#	sample/27-scheduling/package.json
#	sample/28-sse/package.json
#	sample/29-file-upload/package.json
#	sample/30-event-emitter/package.json
#	sample/31-graphql-federation-code-first/gateway/package.json
#	sample/31-graphql-federation-code-first/posts-application/package.json
#	sample/31-graphql-federation-code-first/users-application/package.json
#	sample/32-graphql-federation-schema-first/gateway/package.json
#	sample/32-graphql-federation-schema-first/posts-application/package.json
#	sample/32-graphql-federation-schema-first/users-application/package.json
#	sample/33-graphql-mercurius/package.json
#	sample/36-hmr-esm/package.json
@AbbasSrour

Copy link
Copy Markdown

Ey love the move to esm, finally.

@AbbasSrour

AbbasSrour commented May 25, 2026

Copy link
Copy Markdown

I noticed that part of using nodenext we are gonna have to have .js extension in source files, is there a way around that?

Trying to resolve it by doing tsc-alias as a post build step.

@kamilmysliwiec

kamilmysliwiec commented May 25, 2026

Copy link
Copy Markdown
Member Author

For those who want to give v12 a shot, all packages have just been released under the next tag on NPM:

  • @nestjs/common: 12.0.0-alpha.4
  • @nestjs/core: 12.0.0-alpha.4
  • @nestjs/microservices: 12.0.0-alpha.4
  • @nestjs/platform-express: 12.0.0-alpha.4
  • @nestjs/platform-fastify: 12.0.0-alpha.4
  • @nestjs/platform-socket.io: 12.0.0-alpha.4
  • @nestjs/platform-ws: 12.0.0-alpha.4
  • @nestjs/testing: 12.0.0-alpha.4
  • @nestjs/websockets: 12.0.0-alpha.4
$ npm i {package_name}@next

if you want to start from scratch, you can also just use npx @nestjs/cli@next new (might need a local @nestjs/schematics@next version installed if you already have a globally installed binary - otherwise it may pick up the old version)

12.0.0-alpha.5 has just been published

EDIT @nestjs/swagger@12.0.0-alpha.0 has jusst been published as well

@AbbasSrour

Copy link
Copy Markdown

Quick question and excuse my ignorance, is this version gonna support es decorators?

@13RTK

13RTK commented May 26, 2026

Copy link
Copy Markdown

Quick question and excuse my ignorance, is this version gonna support es decorators?

I think nestjs will never support it until include the decorator metadata and parameter decorator in the standard

@AbbasSrour

Copy link
Copy Markdown

Quick question and excuse my ignorance, is this version gonna support es decorators?

Quick question and excuse my ignorance, is this version gonna support es decorators?

I think nestjs will never support it until include the decorator metadata and parameter decorator in the standard

makes sense thank you

@Roman991

Copy link
Copy Markdown

nest does not bootstrap with the latest alphas

 Error  The "@nestjs/swagger" plugin is not compatible with Nest CLI. Neither "after()" nor "before()" nor "afterDeclarations()" function have been provided.
    "@nestjs/bullmq": "11.0.4",
    "@nestjs/common": "12.0.0-alpha.5",
    "@nestjs/config": "4.0.4",
    "@nestjs/core": "12.0.0-alpha.5",
    "@nestjs/jwt": "11.0.2",
    "@nestjs/passport": "11.0.5",
    "@nestjs/platform-express": "12.0.0-alpha.5",
    "@nestjs/schedule": "6.1.3",
    "@nestjs/sequelize": "11.0.1",
    "@nestjs/swagger": "12.0.0-alpha.2",
    
     "@nestjs/cli": "12.0.0-alpha.6",
    "@nestjs/schematics": "12.0.0-alpha.9",
    "@nestjs/testing": "12.0.0-alpha.5"

@kamilmysliwiec

Copy link
Copy Markdown
Member Author

@Roman991 could you please create an issue in the swagger repository with a minimum reproduction repo? i couldnt reproduce this bug locally

@kamilmysliwiec

Copy link
Copy Markdown
Member Author

@nestjs/config@12.0.0-next.0 has just been published

@kamilmysliwiec

Copy link
Copy Markdown
Member Author
 - @nestjs/apollo: 13.4.0 => 14.0.0-next.0
 - @nestjs/graphql: 13.4.0 => 14.0.0-next.0
 - @nestjs/mercurius: 13.4.0 => 14.0.0-next.0

have just been published under the next tag

@vkouk

vkouk commented Jun 5, 2026

Copy link
Copy Markdown

@nestjs/config@12.0.0-next.0 has just been published

Hey! Thanks for the amazing work. Did we also release the bullmq and rest of the packages to next version ?

test(testing): Add unit tests for @nestjs/testing package
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.